package com.qq.first_project.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.qq.first_project.entity.Blog;
import com.baomidou.mybatisplus.extension.service.IService;
import com.qq.first_project.entity.vo.BlogVo;
import com.qq.first_project.entity.vo.FirstPageBlogVo;
import com.qq.first_project.entity.vo.ShowBlogVo;

import java.util.List;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author Qiu
 * @since 2023-01-30
 */
public interface BlogService extends IService<Blog> {

    //保存新增博客
    int saveBlog(Blog blog);

    //分页模糊查询文章管理列表
    IPage<BlogVo> getAllBlogQuery(Page<BlogVo> page,String title);

    //编辑博客
    int updateBlog(ShowBlogVo showBlogVo);

    //查询编辑修改的文章
    ShowBlogVo getBlogById(Long id);

    //查询首页最新博客列表信息
    Page getAllFirstPageBlog(Page page);

    //查询首页最新推荐信息
    List<FirstPageBlogVo> getRecommendedBlog();

    //搜索博客列表
    List<FirstPageBlogVo> getSearchBlog(String query);

    //统计博客总数
    Integer getBlogTotal();

    //统计访问总数
    Integer getBlogViewTotal();

    //统计评论总数
    Integer getBlogCommentTotal();

    //统计留言总数
    Integer getBlogMessageTotal();

    //根据TypeId查询博客列表，显示在分类页面
    List<FirstPageBlogVo> getByTypeId(Long typeId);

    //通过id查询博客端的博客
    FirstPageBlogVo getIndexBlogById(Long id);

}
